相关疑难解决方法(0)

使用动态正则表达式匹配字符串中的整个单词

我期待看一个单词是否出现在使用正则表达式的句子中.单词用空格分隔,但两边可能都有标点符号.如果单词位于字符串的中间,则以下匹配有效(它可防止部分单词匹配,允许单词两侧的标点符号).

match_middle_words = " [^a-zA-Z\d ]{0,}" + word + "[^a-zA-Z\d ]{0,} "
Run Code Online (Sandbox Code Playgroud)

然而,这不会匹配第一个或最后一个单词,因为没有尾随/前导空格.所以,对于这些情况,我也一直在使用:

match_starting_word = "^[^a-zA-Z\d]{0,}" + word + "[^a-zA-Z\d ]{0,} "
match_end_word = " [^a-zA-Z\d ]{0,}" + word + "[^a-zA-Z\d]{0,}$"
Run Code Online (Sandbox Code Playgroud)

然后结合

 match_string = match_middle_words  + "|" + match_starting_word  +"|" + match_end_word 
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以避免需要三个匹配项.具体来说,是否有一种方法可以指定'以太空格或文件的开头(即"^")和类似的',是空格还是文件末尾(即"$")?

python regex python-2.7

3
推荐指数
1
解决办法
6651
查看次数

标签 统计

python ×1

python-2.7 ×1

regex ×1