我正在尝试从文本中标记和替换不是以#开头的单词。文本文件如下所示:
Some words #word #anotherword #etc
Some more words #words #anotherword #etc #etc more words here
No words containing that character in this line
Etc
应匹配的内容:
Some words
Some more words more words here
No words containing that character in this line
Etc
我对regex完全陌生,一直在尝试提出正确的代码。我得到的最接近的标记是仅除#之外的所有文本,而不是附加在其上的单词。不应选择#号后的部分。注意:还存在特殊字符和数字,应将其标记出来,但#号之后的字符和数字则不应标记。如何以最简单的方式完成此操作?
答案 0 :(得分:1)
您可以使用
(?<!\S)[^\s#]\S*
详细信息
(?<!\S)
-空格字符或字符串开头必须在当前位置之前[^\s#]
-除空格和#
之外的任何字符\S*
-任意0+个非空白字符。请参见the regex demo。