我有以下正则表达式
var string_regex=(\s*[\{\[]?\%?[\s]*)[\@A-Za-z1-9_\.\s\+\-\*\\]*([\s\*]*=[\s\*\$]*[\{\"]?)[\@A-Za-z1-9_\.\s\+\-\*\\]*(\s*[\}\"]?)([\}\]\%\s]*)
Run Code Online (Sandbox Code Playgroud)
其中,[\@A-Za-z1-9_\.\s\+\-\*\\]*将最终由我的程序一个字符串,它被写入到利用文件被替换$1, $2, $3 and $4如下:
val newLineToBeReplacedOrAdded = "$1" + "set type cookies" + "$2" + "sugar cookies" + "$3" + "$4"
Run Code Online (Sandbox Code Playgroud)
我正在测试它的字符串是
{% set type cookies = "sugar cookies" %}
Run Code Online (Sandbox Code Playgroud)
它恰当地匹配.但是,我遇到的问题是,当我将其写入文件时,间距不会保留在等号旁边,所以我最终得到了
{% set type cookies= "sugar cookies" %}
Run Code Online (Sandbox Code Playgroud)
这是一个非常小的差异,但我很欣赏有关如何进一步改进表达以防止这种情况的反馈.
我认为这是一个特别的问题 [\@A-Za-z1-9_\.\s\+\-\*\\]*
使其在 = 之前的空格上进行非贪婪匹配。
[\@A-Za-z1-9_\.\s\+\-\*\\]*?
Run Code Online (Sandbox Code Playgroud)
https://regex101.com/r/yN4mX0/3
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |