regex 我需要一个正则表达式来做一些替换

mum43rcc  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(129)

我正在尝试编写一个正则表达式来转换以下字符串:

1, Pneumonectomy | 2, Lobectomy | 3, Bilobectomy | 4, Sleeve resection lobectomy | 5, Segmentectomy | 6, Wedge resection | 7, Lung resection + chest wall, diaphragm | 8, Lung volume reduction type resection | 9, Exploratory thoracotomy / no resection | 100, Other

走进
其中每个竖线先用双引号替换,然后用空格替换,竖线后的第一个逗号先用等号替换,然后用双引号替换。
我可以匹配使用:

'\s*\|\s*'

被替换为

'" '

但我正在努力解决如何只替换管道后面的第一个逗号。
最终,我将在SAS中实现这一点,起诉如下:

format_string = prxchange('s/\s*\|\s*/" "/', -1, select_choices_or_calculations);
format_string = prxchange('s/\s*,\s*/ = "/', -1, format_string);
wgeznvg7

wgeznvg71#

下面应该做的工作。根据需要进行调整:
(\d+),\s+(\w+(?>\s[\w\+\/,]+)*)(\s\|\s)?
使用此替换:
$1 = "$2"
你可以在这里测试这个表达式:https://regex101.com/r/JxiAxr/1

相关问题