正则表达式使用双标签来处理合并代码

时间:2019-01-17 12:41:36

标签: regex

我正在使用一些RegEx来匹配我在文档中的所有合并代码。

合并代码是这样的。

$tables

我已经做了一个非常简单的正则表达式

##customer.name
##customer.eployee.address

这可以帮助我匹配所有情况,因为它使用空格作为“定界符”,并且适用于以下三个示例:

\S*##\S*

但不是这些:

1
##customer.name ##customer.address

2
##customer.name ##customer.address

3
##customer.name     ##customer.address 

我知道我必须在遇到新的##时重新开始,但是我一直在尝试的所有事情似乎都没有用。

在搜索后尝试了此方法,但没有成功:(

1
##customer.name##customer.address 

2
##customer.name,##customer.address 

3
##customer.name--##customer.address 

任何建议将不胜感激:)

谢谢

2 个答案:

答案 0 :(得分:3)

您可以使用以下两种方法之一:

import csv

allitems = open("ALLITEMS.csv")
checkallitems = csv.reader(allitems)

playerinv = open("INVENTORY.csv", 'a')
checkinv = csv.reader(playerinv)

item = input("")

for x in checkallitems:
    if item in x: # Check if the item is in the current list
        playerinv.write(item +"\n")

allitems.close()
playerinv.close()

请参见regex demo #1regex demo #2

详细信息

  • ##[^#\s]+\b ##\w+(?:\.\w+)* -匹配##子字符串
  • ##-除[^#\s]+\b和空格以外的任意1个以上的字符,应尽可能多,但应在最右边的单词边界处停止
  • #-匹配1+个字母/数字/下划线,然后匹配任意0个或多个\w+(?:\.\w+)*和1+个字母/数字/下划线的序列。

答案 1 :(得分:0)

##[\w.]+

此匹配开始于双哈希 然后是一个或多个字母数字字符或点(。)。

demo here