0
A
回答
11
^[^,]*,[^,]*\b(\w+)\b,
^
- 字符串/線路
[^ ]
的開始 - 任何字符不是...
,
- ...逗號
*
- 零個或多個前面的
,
- 逗號
[^,]*
- 同樣,任何不是逗號的字符,重複零次或多次
\b
- 甲字邊界(零寬度)
()
- 甲捕獲組
\w
- 任何單詞字符
+
- 一個或多個前述
\b
的 - 甲字邊界(零寬度)
,
- 逗號
2
這是基於Web不錯的工具,它的名字是txt2re
3
你的正則表達式可能是這個樣子:
^[^,]*,[^,]*\b(\w+),
比賽任何非逗號序列,後面跟着第一個逗號,接着是更多非逗號,然後是單詞邊界和您的實際單詞,然後是第二個逗號。
0
<?php
$s = "Hello, my name is David, bla bla.";
preg_match ("/[^,]*,[^,].* ([^,].*),.*/" , $s, $matches);
// or shorter ..
preg_match ("/[^,]*,[^,]*\b(\w+),/" , $s, $matches);
echo $matches[1];
// => David
?>
0
$s = "Hello, my name is David, bla bla.";
$s = explode(',', $s);
$s = explode(' ', $s[1]);
$test = $s[sizeof($s)-1];
print $test;
'David'
0
這裏是我的方法:
<?php
$input = 'Hello, my name is David, bla bla.';
$tmp = substr($input, 0, strpos($input, ',', strpos($input, ',') + 1));
$word = substr($tmp, strrpos($tmp, ' ') + 1);
echo $word;
?>
0
Hokay,我知道這是老了,但我練...
如何/,.*?(\w+),/
?
有這個優秀的工具保存的解釋:http://regex101.com/r/yA4gN5
,
的字符相匹配,從字面上.*?
匹配任何字符(除換行符)- 量詞:介於零和無限的時間,如幾次,儘可能擴大[懶惰]
- 1st捕獲組
(\w+)
\w+
匹配任何字字符並[a-ZA-Z0-9_]- 量詞:需要使用一到無限次,多次地,用之於爲[貪婪]
,
匹配的字符,從字面上
此正則表達式(與上面一些),如果大衛自己的名字後,進入非單詞字符,所以 失敗「大衛!」和「大衛」都失敗。
相關問題
- 1. 正則表達式查找逗號
- 2. 正則表達式前後查找逗號4位數字
- 3. 正則表達式:逗號
- 4. 正則表達式查找雙引號外的逗號PHP
- 5. 正則表達式在配對詞的列表中找到第二個詞
- 6. 正則表達式逗號之前的空格和數字
- 7. 正常表達式逗號之前或結尾逗號
- 8. 正則表達式查找或返回第二個
- 9. 正則表達式逗號分隔號
- 10. 正則表達式大寫單詞的第二個字母
- 11. 正則表達式查找硬道理逗號
- 12. Python正則表達式查找單詞與其他詞分開
- 13. 正則表達式在雙括號內逗號前的文本
- 14. 正則表達式 - 消除一切第n個逗號
- 15. 爲逗號正則表達式的話
- 16. 正則表達式來查找以冒號開頭的單詞
- 17. 查找括號內的單詞 - 正則表達式+ Ruby
- 18. 在正則表達式中查找兩個單詞之間的詞
- 19. 正則表達式 - 在第一個逗號前獲取所有內容。 - python
- 20. 正則表達式查找第一個和第二個」 occurence在每一行
- 21. 正則表達式 - 在值之前或之後查找值
- 22. 正則表達式查找單詞裏大括號
- 23. 正則表達式替換逗號
- 24. 正則表達式,R和逗號
- 25. 正則表達式 - 用逗號分隔
- 26. 正則表達式和逗號
- 27. 正則表達式int +逗號
- 28. PHP正則表達式question..adding逗號
- 29. 正則表達式:找到兩個詞之間的空間
- 30. 的Perl - 刪除第一個詞與正則表達式
字邊界是'\ b' - '\ w'就是字本身 – Amarghosh 2009-12-16 10:23:08
好點,謝謝。 – Thomas 2009-12-16 10:23:50
'\ w'是一個單詞字符,而不是一個單詞邊界。 '[^,]'是任何不是逗號的字符,也不是單詞字符。 – Svante 2009-12-16 10:24:24