【问题标题】:NetBeans replace all constants using regular expressionNetBeans 使用正则表达式替换所有常量
【发布时间】:2013-01-22 17:32:09
【问题描述】:

我正在使用 NetBeans,我想知道使用什么正则表达式在每个常量周围添加单引号/双引号。每个常量的定义如下:

define(SYSTEM_BASEDIR, '/base/dir');

Afaik,这不是正确的方法。我需要将所有常量转换为:

define('SYSTEM_BASEDIR', '/base/dir');

提前感谢所有帮助者!

【问题讨论】:

    标签: regex netbeans replace


    【解决方案1】:

    define(SYSTEM_BASEDIR, '/base/dir'); 是无效语法是正确的,因为您在定义它之前使用了常量。

    现在是正则表达式:

    打开替换对话框 (Ctrl+H)

    查找内容:define\((\w*),

    替换为:define("$1",

    这会变成这样:

    define(BLA,"test");
    

    进入:

    define("BLA","test");
    

    【讨论】:

    • @GungFoo 不用逃跑,
    • 不会在替换字符串上转义(
    【解决方案2】:

    网豆Ctrl+H

    find: (define\()(\w*)(\,)
    replace: define("$2",
    

    检查正则表达式

    【讨论】:

      【解决方案3】:
      $result = preg_replace('/\bdefine\((\w+),/', 'define(\'\1\',', $subject);
      

      更改所有实例

      define(<alphanumeric word>,
      

      进入

      define('<alphanumeric word>',
      

      【讨论】:

      • @GungFoo:Stylock 询问如何替换 PHP 中的所有常量,他标记了问题 PHP,这是一个编程问题的问答网站。所以我自然认为他在寻找 PHP 解决方案。
      【解决方案4】:

      Netbeans Ctrl+H

      find: define\(([A-Za-z_]+),
      replace: define('$1',
      

      检查正则表达式

      【讨论】:

        【解决方案5】:

        从您的编辑器中查找替换文本

        在那里使用这个 reg 表达式:

        find : define\((.*),
        
        replace : define('\$1',
        

        如果您使用的是记事本++

        replace : define('\1', 
        

        【讨论】:

        • @NaveedS:你试过了吗?它在记事本++中对我有用(我不确定网豆,但我想它会起作用)
        • \1 不能用于替换字符串中的捕获组引用,但它可以用于正则表达式内的反向引用。由于支持的正则表达式标准不同,它在 Notepad++ 中工作。检查这个stackoverflow.com/questions/11970405/…
        【解决方案6】:

        使用这个正则表达式替换

        (?<constant>(?:[A-Z]+(_[A-Z]+)*))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-06-12
          • 1970-01-01
          • 1970-01-01
          • 2013-06-26
          • 2014-03-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多