如何在字符串句子中查找带有特殊字符的单词
How to find words with special characters in a string sentence
我想知道一般情况下如何在句子中找到带有特殊字符的单词。
例如如果我们有下面的句子
I love (#coo$kies) the following cookies: $cookie[1], $cookie[2, @cookie, @cookie%, hot@dog
抛开这不是在字符串中使用变量的事实。检索“#coo$kies”的正则表达式是什么 $cookie[1]
、$cookie[2
、@cookie
、@cookie%
、hot@dog
而不是 I
、love
... cookies
(或cookies:
)。
我使用了以下正则表达式:
'#(\S+(?!\w+))#'
但是否定不起作用,我得到了每一个字("I","love"..."cookies:")。
无法获取 $cookie[2]
,因为它不存在于源字符串中。
对于其余部分,您需要将单词定界符 [ ,:]
和特殊字符分开,它们是单词的一部分:[$\[\]\@\%]
。它应该是这样的:
((\w*[$\[\]\@\%]+\w*)+?)[ ,:]*
如果可以,请在源字符串的末尾添加一个 space,这样您就可以在不丢失最后一个字的情况下使用强制分隔符:
((\w*[$\[\]\@\%]+\w*)+?)[ ,:]+
试试这个:
(?:^| )+((\w*?[^ :,\w]+?\w*?)*)(?: |,|: |$)
你可以试试here
我想知道一般情况下如何在句子中找到带有特殊字符的单词。
例如如果我们有下面的句子
I love (#coo$kies) the following cookies: $cookie[1], $cookie[2, @cookie, @cookie%, hot@dog
抛开这不是在字符串中使用变量的事实。检索“#coo$kies”的正则表达式是什么 $cookie[1]
、$cookie[2
、@cookie
、@cookie%
、hot@dog
而不是 I
、love
... cookies
(或cookies:
)。
我使用了以下正则表达式:
'#(\S+(?!\w+))#'
但是否定不起作用,我得到了每一个字("I","love"..."cookies:")。
无法获取 $cookie[2]
,因为它不存在于源字符串中。
对于其余部分,您需要将单词定界符 [ ,:]
和特殊字符分开,它们是单词的一部分:[$\[\]\@\%]
。它应该是这样的:
((\w*[$\[\]\@\%]+\w*)+?)[ ,:]*
如果可以,请在源字符串的末尾添加一个 space,这样您就可以在不丢失最后一个字的情况下使用强制分隔符:
((\w*[$\[\]\@\%]+\w*)+?)[ ,:]+
试试这个:
(?:^| )+((\w*?[^ :,\w]+?\w*?)*)(?: |,|: |$)
你可以试试here