如何替换相同2个字符之间多次使用的字符串?

时间:2018-05-31 12:22:35

标签: php regex

我有这个文字。 我的名字是(姓名)。我住在(土耳其)。

我想用输入标签替换括号中的任何内容。 期望的输出应该是:

我的名字输入标签。我住在 INPUT TAG HERE

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码:

My Name is INPUT TAG HERE. I live in INPUT TAG HERE.

将输出:

public void UpdatePOCartTable(int PO_No,string ISBN_No,int OrderQuantity, decimal UnitPrice, decimal Total)
    {
        DynamicConnection con = new DynamicConnection();
        con.mysqlconnection();
        string query = "UPDATE TBL_PO_Cart"
            + " SET ISBN_No = @ISBN_No, OrderQuantity= @OrderQuantity,"
            + "UnitPrice= @UnitPrice, Total=@Total"
            + "WHERE PO_No = @PO_No";
        con.sqlquery(query);
        con.cmd.Parameters.Add(new SqlParameter("@PO_No", SqlDbType.Int));
        con.cmd.Parameters["@PO_No"].Value = PO_No;
        con.cmd.Parameters.Add(new SqlParameter("@ISBN_No", SqlDbType.NVarChar));
        con.cmd.Parameters["@ISBN_No"].Value = ISBN_No;
        con.cmd.Parameters.Add(new SqlParameter("@OrderQuantity", SqlDbType.NVarChar));
        con.cmd.Parameters["@OrderQuantity"].Value = OrderQuantity;
        con.cmd.Parameters.Add(new SqlParameter("@UnitPrice", SqlDbType.Money));
        con.cmd.Parameters["@UnitPrice"].Value = UnitPrice;
        con.cmd.Parameters.Add(new SqlParameter("@Total", SqlDbType.Money));
        con.cmd.Parameters["@Total"].Value = Total;
        con.nonquery();
    }

private void btnedit_Click(object sender, EventArgs e)
    {
        DynamicConnection con = new DynamicConnection();
        try
        {
            if (txtPONo.Text != "" || cmbsupID.Text != "" || date1.Text != "" || requireddate.Text != "" || txtgrandTotal.Text != "")
            {
                PurchaseOrder PO = new PurchaseOrder();

                for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
                {

                    PO.UpdatePOCartTable(Convert.ToInt32(txtPONo.Text),dataGridView1.Rows[i].Cells[1].Value.ToString(), Convert.ToInt32(dataGridView1.Rows[i].Cells[2].Value.ToString()), Convert.ToDecimal(dataGridView1.Rows[i].Cells[3].Value.ToString()), Convert.ToDecimal(dataGridView1.Rows[i].Cells[4].Value.ToString()));

                }
            }
            else
            {
                MessageBox.Show("Please Provide Details!");
            }
            dataGridView1.Rows.Clear();
            ClearData();
            retviewPO_No();
            MessageBox.Show("Record Updated Successfully");
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error Occured" + ex.Message);
        }
    }

此代码使用preg_replace方法使用正则表达式替换字符串 括号之间允许所有字符(空格,字母,数字,等等),绝对除了其他括号外都是。

答案 1 :(得分:1)

请尝试以下方法: -

<?php
$string = 'My Name is (Name some). I live in (Turkey).';
// this pattern takes care of white spaces in multi word keywords inside () also
$pattern = '(\([\w\s]+\)*)';
$replacement = 'INPUT TAG HERE';
echo preg_replace($pattern, $replacement, $string);
?>

输出: -     我的名字输入标签。我住在这里的INPUT TAG。

此模式处理多个单词关键字in()中的空格