regexp-在另一个文本之外替换文本

时间:2018-12-20 19:13:03

标签: c# regex

我正在编辑一些C#代码,并且需要将诸如nameof(somevar)之类的表达式更改为“ somevar”。 regexp可以使用吗?

下面是一个更好的示例:

我所拥有的:

None

我需要什么:

constructor(props) {

    super(props)


    this.state = {
      isModalOpen: false,
      modalProduct: undefined,
    }
}

//****************************************************************************/

render() {

    return (
        <h4> Bag </h4>
        {this.state.isModalOpen & (
          <Modal 
            modalProduct={this.state.modalProduct}
            closeModal={() => this.setState({ isModalOpen: false, modalProduct: undefined})
            deleteProduct={ ... }
          />
        )

        {bag.products.map((product, index) => (
        <div key={index}>
            <div>{product.name}</div>
            <div>£{product.price}</div>
            <div>
            <span> Quantity:{product.quantity} </span>
            <button onClick={() => this.props.incrementQuantity(product, product.quantity += 1)}> + </button>
            <button onClick={() => this.decrementQuantity(product)}> - </button> // <----
            </div>
        </div>
        ))}
    )
}

//****************************************************************************/

decrementQuantity(product) {

    if(product.quantity === 1) {
        this.setState({ isModalOpen: true, modalProduct: product })
    } else {
        this.props.decrementQuantity(product)
    }
}

2 个答案:

答案 0 :(得分:1)

替换正则表达式:

  nameof\(([^)]*)\)

作者:

  "\1"

答案 1 :(得分:1)

这应该做到:

  string s = "nameof(abc)";
  Regex r = new Regex("nameof\\((.+?)\\)");
  string output = r.Replace(s, "\"$1\"");
  • \(搜索左括号
  • (.+?)创建一个组(即$1),该组懒惰地(.搜索一次或多次(+)的任何字符(?) )
  • \)搜索右括号