2

首先,正则表达式很可能是我处理过的最令人困惑的事情——话虽如此,我无法相信它们能让人生活的效率有多高。

所以我试图理解通配符正则表达式没有运气

需要转

f_firstname
f_lastname
f_dob       
f_origincountry 
f_landing  

进入

':f_firstname'=>$f_firstname,
':f_lastname'=>$f_lastname,
':f_dob'=>$f_dob,
':f_origincountry'=>$f_origincountry,   
':f_landing'=>$f_landing,

在答案中,您能否简要描述您正在使用的正则表达式,我一直在阅读教程,但它们让我大吃一惊。谢谢。

4

3 回答 3

6

编辑:正如克里斯指出的那样,您可以通过清理目标字符串中可能存在的任何空白来改进正则表达式。我也将点替换\w为他所做的,因为这比使用.

Search: ^f_(\w+)\s*$
^     # start at the beginning of the line
f_    # look for f_
(\w+) # capture in a group all characters
\s*   # optionally skip over (don't capture) optional whitespace
$     # end of the line

Replace: ':f_\1'=>$f_\1,
':f_    # beginning of replacement string
\1      # the group of characters captured above
'=>$f_  # some more characters for the replace
\1,     # the capture group (again)
于 2012-09-02T06:14:01.830 回答
2
Find: (^.*)

Replace with: ':$1'=>$$1,
于 2012-09-02T06:17:18.980 回答
1

找什么:

(f_\w+)

这里我们匹配f_后跟一个单词字符\w+(加​​号表示一次或多次)。将整个内容括在括号中意味着我们可以在替换模式中引用该组

用。。。来代替:

':\1'=>$\1,

这只是您的结果短语,而不是硬编码我\1在搜索中引用该组的 f 单词

于 2012-09-02T06:15:07.727 回答